<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang xml:lang>
<head>
  <meta http-equiv='X-UA-Compatible' content='IE=edge' />
  <meta http-equiv='MSThemeCompatible' content='Yes'>

  <meta charset="utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  <title>CIniFile Class</title>
  <style type="text/css">
      code{white-space: pre-wrap;}
      span.smallcaps{font-variant: small-caps;}
      span.underline{text-decoration: underline;}
      div.column{display: inline-block; vertical-align: top; width: 50%;}
  </style>
  <style type="text/css">@font-face {font-family: octicons-link;src: url(data:font/woff;charset=utf-8;base64,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) format('woff');}body {-webkit-text-size-adjust: 100%;text-size-adjust: 100%;color: #333;font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";font-size: 16px;line-height: 1.6;word-wrap: break-word;max-width: 99%;box-sizing: border-box;padding: 20px 5px 8rem 5px; margin-left: auto;margin-right: auto;}body a {background-color: transparent;}body a:active,body a:hover {outline: 0;}body strong {font-weight: bold;}body h1 {font-size: 2em;margin: 0.67em 0;}body img {border: 0;}body hr {box-sizing: content-box;height: 0;}body pre {overflow: auto;}body code,body kbd,body pre {font-family: monospace, monospace;font-size: 1em;}body input {color: inherit;font: inherit;margin: 0;}body html input[disabled] {cursor: default;}body input {line-height: normal;}body input[type="checkbox"] {box-sizing: border-box;padding: 0;}body table {border-collapse: collapse;border-spacing: 0;}body td,body th {padding: 0;}body * {box-sizing: border-box;}body input {font: 13px / 1.4 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";}body a {color: #4078c0;text-decoration: none;}body a:hover,body a:active {text-decoration: underline;}body hr {height: 0;margin: 15px 0;overflow: hidden;background: transparent;border: 0;border-bottom: 1px solid #ddd;}body hr:before {display: table;content: "";}body hr:after {display: table;clear: both;content: "";}body h1,body h2,body h3,body h4,body h5,body h6 {margin-top: 15px;margin-bottom: 15px;line-height: 1.1;}body h1 {font-size: 30px;}body h2 {font-size: 21px;}body h3 {font-size: 16px;}body h4 {font-size: 14px;}body h5 {font-size: 12px;}body h6 {font-size: 11px;}body blockquote {margin: 0;}body ul,body ol {padding: 0;margin-top: 0;margin-bottom: 0;}body ol ol,body ul ol {list-style-type: lower-roman;}body ul ul ol,body ul ol ol,body ol ul ol,body ol ol ol {list-style-type: lower-alpha;}body dd {margin-left: 0;}body code {font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;font-size: 12px;}body pre {margin-top: 0;margin-bottom: 0;font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;}body .select::-ms-expand {opacity: 0;}body .octicon {font: normal normal normal 16px/1 octicons-link;display: inline-block;text-decoration: none;text-rendering: auto;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}body .octicon-link:before {content: '\f05c';}body:before {display: table;content: "";}body:after {display: table;clear: both;content: "";}body>*:first-child {margin-top: 0 !important;}body>*:last-child {margin-bottom: 0 !important;}body a:not([href]) {color: inherit;text-decoration: none;}body .anchor {display: inline-block;padding-right: 2px;margin-left: -18px;}body .anchor:focus {outline: none;}body h1,body h2,body h3,body h4,body h5,body h6 {margin-top: 1em;margin-bottom: 16px;font-weight: bold;line-height: 1.4;}body h1 .octicon-link,body h2 .octicon-link,body h3 .octicon-link,body h4 .octicon-link,body h5 .octicon-link,body h6 .octicon-link {color: #000;vertical-align: middle;visibility: hidden;}body h1:hover .anchor,body h2:hover .anchor,body h3:hover .anchor,body h4:hover .anchor,body h5:hover .anchor,body h6:hover .anchor {text-decoration: none;}body h1:hover .anchor .octicon-link,body h2:hover .anchor .octicon-link,body h3:hover .anchor .octicon-link,body h4:hover .anchor .octicon-link,body h5:hover .anchor .octicon-link,body h6:hover .anchor .octicon-link {visibility: visible;}body h1 {padding-bottom: 0.3em;font-size: 1.75em;line-height: 1.2;}body h1 .anchor {line-height: 1;}body h2 {padding-bottom: 0.3em;font-size: 1.5em;line-height: 1.225;}body h2 .anchor {line-height: 1;}body h3 {font-size: 1.25em;line-height: 1.43;}body h3 .anchor {line-height: 1.2;}body h4 {font-size: 1em;}body h4 .anchor {line-height: 1.2;}body h5 {font-size: 1em;}body h5 .anchor {line-height: 1.1;}body h6 {font-size: 1em;color: #777;}body h6 .anchor {line-height: 1.1;}body p,body blockquote,body ul,body ol,body dl,body table,body pre {margin-top: 0;margin-bottom: 16px;}body hr {height: 4px;padding: 0;margin: 16px 0;background-color: #e7e7e7;border: 0 none;}body ul,body ol {padding-left: 2em;}body ul ul,body ul ol,body ol ol,body ol ul {margin-top: 0;margin-bottom: 0;}body li>p {margin-top: 16px;}body dl {padding: 0;}body dl dt {padding: 0;margin-top: 16px;font-size: 1em;font-style: italic;font-weight: bold;}body dl dd {padding: 0 16px;margin-bottom: 16px;}body blockquote {padding: 0 15px;color: #777;border-left: 4px solid #ddd;}body blockquote>:first-child {margin-top: 0;}body blockquote>:last-child {margin-bottom: 0;}body table {display: block;width: 100%;overflow: auto;word-break: normal;word-break: keep-all;}body table th {font-weight: bold;}body table th,body table td {padding: 6px 13px;border: 1px solid #ddd;}body table tr {background-color: #fff;border-top: 1px solid #ccc;}body table tr:nth-child(2n) {background-color: #f8f8f8;}body img {max-width: 100%;box-sizing: content-box;background-color: #fff;}body code {padding: 0;padding-top: 0;padding-bottom: 0;margin: 0;font-size: 85%;background-color: rgba(0,0,0,0.04);border-radius: 3px;}body code:before,body code:after {letter-spacing: -0.2em;content: "\00a0";}body pre>code {padding: 0;margin: 0;font-size: 100%;word-break: normal;white-space: pre;background: transparent;border: 0;}body .highlight {margin-bottom: 16px;}body .highlight pre,body pre {padding: 16px;overflow: auto;font-size: 85%;line-height: 1.45;background-color: #f7f7f7;border-radius: 3px;}body .highlight pre {margin-bottom: 0;word-break: normal;}body pre {word-wrap: normal;}body pre code {display: inline;max-width: initial;padding: 0;margin: 0;overflow: initial;line-height: inherit;word-wrap: normal;background-color: transparent;border: 0;}body pre code:before,body pre code:after {content: normal;}body kbd {display: inline-block;padding: 3px 5px;font-size: 11px;line-height: 10px;color: #555;vertical-align: middle;background-color: #fcfcfc;border: solid 1px #ccc;border-bottom-color: #bbb;border-radius: 3px;box-shadow: inset 0 -1px 0 #bbb;}body .pl-c {color: #969896;}body .pl-c1,body .pl-s .pl-v {color: #0086b3;}body .pl-e,body .pl-en {color: #795da3;}body .pl-s .pl-s1,body .pl-smi {color: #333;}body .pl-ent {color: #63a35c;}body .pl-k {color: #a71d5d;}body .pl-pds,body .pl-s,body .pl-s .pl-pse .pl-s1,body .pl-sr,body .pl-sr .pl-cce,body .pl-sr .pl-sra,body .pl-sr .pl-sre {color: #183691;}body .pl-v {color: #ed6a43;}body .pl-id {color: #b52a1d;}body .pl-ii {background-color: #b52a1d;color: #f8f8f8;}body .pl-sr .pl-cce {color: #63a35c;font-weight: bold;}body .pl-ml {color: #693a17;}body .pl-mh,body .pl-mh .pl-en,body .pl-ms {color: #1d3e81;font-weight: bold;}body .pl-mq {color: #008080;}body .pl-mi {color: #333;font-style: italic;}body .pl-mb {color: #333;font-weight: bold;}body .pl-md {background-color: #ffecec;color: #bd2c00;}body .pl-mi1 {background-color: #eaffea;color: #55a532;}body .pl-mdr {color: #795da3;font-weight: bold;}body .pl-mo {color: #1d3e81;}body kbd {display: inline-block;padding: 3px 5px;font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;line-height: 10px;color: #555;vertical-align: middle;background-color: #fcfcfc;border: solid 1px #ccc;border-bottom-color: #bbb;border-radius: 3px;box-shadow: inset 0 -1px 0 #bbb;}body .task-list-item {list-style-type: none;}body .task-list-item+.task-list-item {margin-top: 3px;}body .task-list-item input {margin: 0 0.35em 0.25em -1.6em;vertical-align: middle;}body :checked+.radio-label {z-index: 1;position: relative;border-color: #4078c0;}</style>
  
    
  
</head>
<body>
<h1 id="cinifile-class">CIniFile Class</h1>
<p><strong>CIniFile</strong> is a wrapper class to work with .ini files.</p>
<p>Pass the path and name of the .ini file to read or write to when you create an instance of the <strong>CIniFile</strong> class. If you omit the path, the class will use the current directory. If the .ini file does not exist, it will create it.</p>
<ul>
<li>To retrieve data from the class, use the methods <strong>GetString</strong>, <strong>GetDouble</strong> or <strong>GetInt</strong>.</li>
<li>To set data values, call one of the overloaded <strong>WriteValue</strong> methods.</li>
<li>To delete a key, call the <strong>DeleteKey</strong> method.</li>
<li>To delete an entire section, call the <strong>DeleteSection</strong> method.</li>
</ul>
<p>Other useful methods are <strong>GetKeyNames</strong>, that returns a safe array with the names of all the keys of the specified section, <strong>GetSectionNames</strong>, that returns a safe array with the names of all the sections in the .ini file, and <strong>GetSectionValues</strong>, that returns a <strong>Dictionary</strong> object with the names and values of all the keys of the specified section.</p>
<p><strong>Include file</strong>: CIniFile.inc</p>
<h3 id="constructors">Constructors</h3>
<pre><code>CONSTRUCTOR CIniFIle ((BYREF wszFileName AS WSTRING)
</code></pre>
<table>
<thead>
<tr class="header">
<th>Parameter</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><em>wszFileName</em></td>
<td>The path and name of the .ini file. If you omit the path, the class will use the current directory. If the .ini file does not exist, it will create it.</td>
</tr>
</tbody>
</table>
<h4 id="example">Example</h4>
<pre><code>#include once &quot;Afx/CInifile.inc&quot;
USING Afx

DIM cIni AS CInifile = &quot;Test.ini&quot;
cIni.WriteValue(&quot;Test&quot;, &quot;Name&quot;, &quot;Joe Doe&quot;)
DIM wszName AS WSTRING * 260
wszName = cIni.GetString(&quot;Test&quot;, &quot;Name&quot;)
print wszName

PRINT &quot;Press any key...&quot;
SLEEP
</code></pre>
<h3 id="methods">Methods</h3>
<table>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="#DeleteKey">DeleteKey</a></td>
<td>Deletes a key from the specified section of an initialization file.</td>
</tr>
<tr class="even">
<td><a href="#DeleteSection">DeleteSection</a></td>
<td>Deletes a section from an initialization file.</td>
</tr>
<tr class="odd">
<td><a href="#GetDouble">GetDouble</a></td>
<td>Retrieves a numeric value from the specified section in an initialization file.</td>
</tr>
<tr class="even">
<td><a href="#GetInt">GetInt</a></td>
<td>Retrieves a numeric value from the specified section in an initialization file.</td>
</tr>
<tr class="odd">
<td><a href="#GetKeyNames">GetKeyNames</a></td>
<td>Returns a safe array with the names of all the keys of the specified section.</td>
</tr>
<tr class="even">
<td><a href="#GetPath">GetPath</a></td>
<td>Returns the full path of ini file this object instance is operating on.</td>
</tr>
<tr class="odd">
<td><a href="#GetSectionNames">GetSectionNames</a></td>
<td>Returns a safe array with the names of all sections in the ini file.</td>
</tr>
<tr class="even">
<td><a href="#GetSectionValues">GetSectionValues</a></td>
<td>Returns the keys and values of the specified section as a dictionary object.</td>
</tr>
<tr class="odd">
<td><a href="#GetString">GetString</a></td>
<td>Retrieves a string from the specified section in an initialization file.</td>
</tr>
<tr class="even">
<td><a href="#WriteValue">WriteValue</a></td>
<td>Writes a value into the specified section of an initialization file.</td>
</tr>
</tbody>
</table>
<h1 id="deletekey"><a name="DeleteKey"></a>DeleteKey</h1>
<p>Deletes a key from the specified section of an initialization file.</p>
<pre><code>FUNCTION DeleteKey (BYREF wszSectionName AS WSTRING, BYREF wszKeyName AS WSTRING) AS BOOLEAN
</code></pre>
<table>
<thead>
<tr class="header">
<th>Parameter</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><em>wszSectionName</em></td>
<td>The name of the section.</td>
</tr>
<tr class="even">
<td><em>wszKeyName</em></td>
<td>The name of the key to delete.</td>
</tr>
</tbody>
</table>
<h4 id="return-value">Return value</h4>
<p>BOOLEAN. True on success or False on failure.</p>
<h1 id="deletesection"><a name="DeleteSection"></a>DeleteSection</h1>
<p>Deletes a section from an initialization file.</p>
<pre><code>FUNCTION DeleteSection (BYREF wszSectionName AS WSTRING) AS BOOLEAN
</code></pre>
<table>
<thead>
<tr class="header">
<th>Parameter</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><em>wszSectionName</em></td>
<td>The name of the section to delete.</td>
</tr>
</tbody>
</table>
<h4 id="return-value-1">Return value</h4>
<p>BOOLEAN. True on success or False on failure.</p>
<h1 id="getdouble"><a name="GetDouble"></a>GetDouble</h1>
<p>Retrieves a numeric value from the specified section in an initialization file.</p>
<pre><code>FUNCTION GetDouble (BYREF wszSectionName AS WSTRING, _
   BYREF wszKeyName AS WSTRING, BYVAL nDefaultValue AS DOUBLE = 0) AS DOUBLE
</code></pre>
<table>
<thead>
<tr class="header">
<th>Parameter</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><em>wszSectionName</em></td>
<td>The name of the section.</td>
</tr>
<tr class="even">
<td><em>wszKeyName</em></td>
<td>The name of the key.</td>
</tr>
<tr class="odd">
<td><em>nDefaultValue</em></td>
<td>A default value to be returned if the key key cannot be found in the initialization file.</td>
</tr>
</tbody>
</table>
<h4 id="return-value-2">Return value</h4>
<p>DOUBLE. The retrieved value. If the key key cannot be found in the initialization file, the default value is returned.</p>
<h1 id="getint"><a name="GetInt"></a>GetInt</h1>
<p>Retrieves a numeric value from the specified section in an initialization file.</p>
<pre><code>FUNCTION GetInt (BYREF wszSectionName AS WSTRING, _
   BYREF wszKeyName AS WSTRING, BYVAL nDefaultValue AS LONG = 0) AS LONG
</code></pre>
<table>
<thead>
<tr class="header">
<th>Parameter</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><em>wszSectionName</em></td>
<td>The name of the section.</td>
</tr>
<tr class="even">
<td><em>wszKeyName</em></td>
<td>The name of the key.</td>
</tr>
<tr class="odd">
<td><em>nDefaultValue</em></td>
<td>A default value to be returned if the key key cannot be found in the initialization file.</td>
</tr>
</tbody>
</table>
<h4 id="return-value-3">Return value</h4>
<p>LONG. The retrieved value. If the key key cannot be found in the initialization file, the default value is returned.</p>
<h1 id="getkeynames"><a name="GetKeyNames"></a>GetKeyNames</h1>
<p>Returns a safe array with the names of all the keys of the specified section.</p>
<pre><code>FUNCTION GetKeyNames () AS CSafeArray
</code></pre>
<h4 id="return-value-4">Return value</h4>
<p>CSAFEARRAY. The names of all the keys of the specified section.</p>
<h4 id="example-1">Example</h4>
<pre><code>DIM cIni AS CInifile = &quot;Test.ini&quot;
DIM csa AS CSafeArray = GetKeyNames(&quot;Startup&quot;)
FOR i AS LONG = csa.LBound TO csa.UBound
   print csa.GetString(i)
NEXT
</code></pre>
<h1 id="getpath"><a name="GetPath"></a>GetPath</h1>
<p>Returns the full path of the initialization file this object instance is operating on.</p>
<pre><code>FUNCTION GetPath () AS CWSTR
</code></pre>
<h4 id="return-value-5">Return value</h4>
<p>CWSTR. The path of the initialization file.</p>
<h1 id="getsectionnames"><a name="GetSectionNames"></a>GetSectionNames</h1>
<p>Returns a safe array with the names of all sections in the initialization file.</p>
<pre><code>FUNCTION GetSectionNames () AS CSafeArray
</code></pre>
<h4 id="return-value-6">Return value</h4>
<p>CSAFEARRAY. The names of all the sections of the file.</p>
<h4 id="example-2">Example</h4>
<pre><code>DIM cIni AS CInifile = &quot;Test.ini&quot;
DIM csa AS CSafeArray = cIni.GetSectionNames
FOR i AS LONG = csa.LBound TO csa.UBound
   print csa.GetString(i)
NEXT
</code></pre>
<h1 id="getsectionvalues"><a name="GetSectionValues"></a>GetSectionValues</h1>
<p>Returns the keys and values of the specified section as a dictionary object.</p>
<pre><code>FUNCTION GetSectionValues (BYREF wszSectionName AS WSTRING, BYREF pDic AS CDicObj) AS BOOLEAN
</code></pre>
<table>
<thead>
<tr class="header">
<th>Parameter</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><em>wszSectionName</em></td>
<td>The name of the section.</td>
</tr>
<tr class="even">
<td><em>pDic</em></td>
<td>A reference to an instance of the <em>CDicObj</em> class.</td>
</tr>
</tbody>
</table>
<h4 id="return-value-7">Return value</h4>
<p>BOOLEAN. True on success or False on failure.</p>
<h1 id="getstring"><a name="GetString"></a>GetString</h1>
<p>Retrieves a string from the specified section in an initialization file.</p>
<pre><code>FUNCTION GetString (BYREF wszSectionName AS WSTRING, _
   BYREF wszKeyName AS WSTRING, BYREF wszDefaultValue AS WSTRING = &quot;&quot;) AS CWSTR
</code></pre>
<table>
<thead>
<tr class="header">
<th>Parameter</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><em>wszSectionName</em></td>
<td>The name of the section.</td>
</tr>
<tr class="even">
<td><em>wszKeyName</em></td>
<td>The name of the key.</td>
</tr>
<tr class="odd">
<td><em>wszDefaultValue</em></td>
<td>A default string. If the key key cannot be found in the initialization file, the default string is returned. Avoid specifying a default string with trailing blank characters. The function inserts a null character in the returned buffer to strip any trailing blanks.</td>
</tr>
</tbody>
</table>
<h4 id="return-value-8">Return value</h4>
<p>CWSTR. The retrieved string. If the key key cannot be found in the initialization file, the default value is returned.</p>
<h1 id="writevalue"><a name="WriteValue"></a>WriteValue</h1>
<p>Writes a value into the specified section of an initialization file.</p>
<pre><code>FUNCTION WriteValue (BYREF wszSectionName AS WSTRING, _
   BYREF wszKeyName AS WSTRING, BYREF wszValue AS WSTRING) AS BOOLEAN
</code></pre>
<pre><code>FUNCTION WriteValue (BYREF wszSectionName AS WSTRING, _
   BYREF wszKeyName AS WSTRING, BYVAL dblValue AS DOUBLE) AS BOOLEAN
</code></pre>
<pre><code>FUNCTION WriteValue (BYREF wszSectionName AS WSTRING, _
   BYREF wszKeyName AS WSTRING, BYVAL intValue AS LONG) AS BOOLEAN
</code></pre>
<table>
<thead>
<tr class="header">
<th>Parameter</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><em>wszSectionName</em></td>
<td>The name of the section.</td>
</tr>
<tr class="even">
<td><em>wszKeyName</em></td>
<td>The name of the key.</td>
</tr>
<tr class="odd">
<td><em>wszValue</em> / <em>dblValue</em> / <em>intValue</em></td>
<td>The value to write.</td>
</tr>
</tbody>
</table>
<h4 id="return-value-9">Return value</h4>
<p>BOOLEAN. True on success or False on failure.</p>
</body>
</html>

